﻿using System.ComponentModel.DataAnnotations;

namespace RndMaterialDisposalService.Models
{
    public class CapitalRepairReportFormModel
    {
        [Key]
        [Ganss.Excel.Ignore]
        public string Key { get; set; }
        /// <summary>
        /// 单号
        /// </summary>
        [Ganss.Excel.Column(1,"单号")]
        public string ApplicationNumber { get; set; }
        [Ganss.Excel.Ignore]
        public string ProcInstId { get; set; }
        [Ganss.Excel.Ignore]
        public string ApplicantEmployeeNumber { get; set; }
        /// <summary>
        /// 申请时间
        /// </summary>
        [Ganss.Excel.Ignore]
        public DateTime? CreatedDate { get; set; }

        [Ganss.Excel.Column(2, "申请时间")]
        public string? DcCreatedDate => CreatedDate?.ToString("yyyy-MM-dd");

        /// <summary>
        /// 当前处理人
        /// </summary>
        [Ganss.Excel.Column(3,"当前处理人")]
        public string ApplicantName { get; set; }

        /// <summary>
        /// 送修人
        /// </summary>
        [Ganss.Excel.Column(4,"送修人")]
        public string SongCarRenName { get; set; }

        /// <summary>
        /// 公司段
        /// </summary>
        [Ganss.Excel.Column(5,"公司段")]
        public string CompanySegment { get; set; }

        /// <summary>
        /// 资产编号
        /// </summary>
        [Ganss.Excel.Column(6,"资产编号")]
        public string AssetNo { get; set; }
        /// <summary>
        /// 资产名称
        /// </summary>
        [Ganss.Excel.Column(7,"资产名称")]
        public string AssetName { get; set; }

        /// <summary>
        /// 部门名称
        /// </summary>
        [Ganss.Excel.Column(8,"部门名称")]
        public string DepartmentName { get; set; }
        /// <summary>
        /// 部门编号
        /// </summary>
        [Ganss.Excel.Column(9,"部门编号")]
        public string DepartmentNumber { get; set; }

        /// <summary>
        /// 计量属性
        /// </summary>
        [Ganss.Excel.Column(10,"计量属性")]
        public string? MeasurementAttribute { get; set; }

        /// <summary>
        /// 出厂编号
        /// </summary>
        [Ganss.Excel.Column(11,"出厂编号")]
        public string FactoryNo { get; set; }

        //供应商名称
        [Ganss.Excel.Column(12,"供应商名称")]
        public string? SupplierName { get; set; }

        /// <summary>
        /// 损坏日期
        /// </summary>
        [Ganss.Excel.Ignore]
        public DateTime? DamageTime { get; set; }

        [Ganss.Excel.Column(13, "损坏日期")]
        public string? DcDamageTime => DamageTime?.ToString("yyyy-MM-dd");

        //资产启用日期
        [Ganss.Excel.Ignore]
        public DateTime? AssetActivationTime { get; set; }

        [Ganss.Excel.Column(14, "资产启用日期")]
        public string? DcAssetActivationTime => AssetActivationTime?.ToString("yyyy-MM-dd");

        //维修接口人(维修安排）
        [Ganss.Excel.Column(15,"维修接口人(维修安排）")]
        public string? MaintenanceContactPerson { get; set; }

        //原值
        [Ganss.Excel.Column(16,"原值")]
        public decimal? OriginalValue { get; set; }

        //净值
        [Ganss.Excel.Column(17,"净值")]
        public decimal? NetWorth { get; set; }

        //使用年限
        [Ganss.Excel.Column(18,"使用年限")]
        public string? ServiceLife { get; set; }

        //历史维修次数
        [Ganss.Excel.Column(19,"历史维修次数")]
        public string? HistoricalMaintenanceCount { get; set; }

        /// <summary>
        /// 维修工程师
        /// </summary>
        [Ganss.Excel.Column(20,"维修工程师")]
        public string MaintenanceEngineerName { get; set; }

        //收到实物时间
        [Ganss.Excel.Ignore]
        public DateTime? ReceivedInKindTime { get; set; }

        [Ganss.Excel.Column(21, "收到实物时间")]
        public string? DcReceivedInKindTime => ReceivedInKindTime?.ToString("yyyy-MM-dd");

        //开始维修时间
        [Ganss.Excel.Ignore]
        public DateTime? MaintenanceStartTime { get; set; }

        [Ganss.Excel.Column(22, "开始维修时间")]
        public string? DcMaintenanceStartTime => MaintenanceStartTime?.ToString("yyyy-MM-dd");

        //维修电子流与实物送修信息是否一致
        [Ganss.Excel.Column(23,"维修电子流与实物送修信息是否一致")]
        public string? IsInformationConsistency { get; set; }

        //承诺周期
        [Ganss.Excel.Column(24,"承诺周期")]
        public string? CommitmentCycle { get; set; }

        //仪器品牌
        [Ganss.Excel.Column(25,"仪器品牌")]
        public string? InstrumentBrand { get; set; }

        //仪器型号
        [Ganss.Excel.Column(26,"仪器型号")]
        public string? InstrumentModel { get; set; }

        //保修期内
        [Ganss.Excel.Column(27,"保修期内")]
        public string? WithinTheWarrantyPeriod { get; set; }

        //委外维修
        [Ganss.Excel.Column(28,"委外维修")]
        public string? SubcontractingRepair { get; set; }

        //维修商名称
        [Ganss.Excel.Column(29,"维修商名称")]
        public string? MaintainerName { get; set; }

        //委外送走日期
        [Ganss.Excel.Ignore]
        public DateTime? OutsourcingDeliveryDate { get; set; }

        [Ganss.Excel.Column(30, "委外送走日期")]
        public string? DcOutsourcingDeliveryDate => OutsourcingDeliveryDate?.ToString("yyyy-MM-dd");

        //维修费用
        [Ganss.Excel.Column(31,"维修费用")]
        public string? MaintenanceCosts { get; set; }

        //价格
        [Ganss.Excel.Column(32,"价格")]
        public decimal? Price { get; set; }

        //采购部门验证费用
        [Ganss.Excel.Column(33,"采购部门验证费用")]
        public string? PurchaseDepartmentExpenses { get; set; }

        //部门权签人审批费用
        [Ganss.Excel.Column(34,"部门权签人审批费用")]
        public string? DepartmentApprovalExpense { get; set; }

        //部门权签人审批日期
        [Ganss.Excel.Ignore]
        public DateTime? DepartmentSignatureDate { get; set; }

        [Ganss.Excel.Column(35, "部门权签人审批日期")]
        public string? DcDepartmentSignatureDate => DepartmentSignatureDate?.ToString("yyyy-MM-dd");

        //回执人员
        [Ganss.Excel.Column(36,"回执人员")]
        public string? ReceiptPersonnel { get; set; }

        //委外完成日期
        [Ganss.Excel.Ignore]
        public DateTime? SubcontractingCompletionDate { get; set; }

        [Ganss.Excel.Column(37, "委外完成日期")]
        public string? DcSubcontractingCompletionDate => SubcontractingCompletionDate?.ToString("yyyy-MM-dd");

        /// <summary>
        /// 流程状态
        /// </summary>
        [Ganss.Excel.Column(38,"流程状态")]
        public string? CurrentStatus { get; set; }

        /// <summary>
        /// 最终采购价格
        /// </summary>
        [Ganss.Excel.Column(39, "最终采购价格")]
        public decimal? FinalPurchasePrice { get; set; }

        /// <summary>
        /// 供应商名称-第5步
        /// </summary>
        [Ganss.Excel.Column(40, "第5环节供应商名称")]
        public string? VerificationSupplierName { get; set; }
    }
}
